package com.liveneo.adapter.base.mapper;

import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.liveneo.adapter.base.entity.PrpmCaseInfo;
import com.liveneo.adapter.base.entity.PrpmCaseInfoExample;
import com.liveneo.adapter.mobile.model.PrpmCountReupload;
import com.liveneo.adapter.mobile.model.dto.PrpmBoardCaseInfoDto;
import com.liveneo.adapter.mobile.model.dto.PrpmCaseInfoDto;
import com.liveneo.adapter.mobile.model.dto.PrpmEndCaseInfoDto;
import com.liveneo.adapter.mobile.model.dto.PrpmHesunDetailDto;
import com.liveneo.adapter.mobile.model.dto.PrpmImgCheckDetailDto;
import com.liveneo.adapter.mobile.model.dto.PrpmRealCaseInfoDto;
import com.liveneo.adapter.mobile.model.dto.PrpmUserStatusDto;
import com.liveneo.adapter.mobile.model.request.LossItemRequest;

@SuppressWarnings("rawtypes")
public interface PrpmCaseInfoMapper {
    int deleteByPrimaryKey(String caseInfoId);

    int insert(PrpmCaseInfo record);

    int insertSelective(PrpmCaseInfo record);

    PrpmCaseInfo selectByPrimaryKey(String caseInfoId);

    int updateByPrimaryKeySelective(PrpmCaseInfo record);

    int updateByPrimaryKey(PrpmCaseInfo record);
    
    int countByExample(PrpmCaseInfoExample example);

    int deleteByExample(PrpmCaseInfoExample example);

    List<PrpmCaseInfo> selectByExample(PrpmCaseInfoExample example);

    int updateByExampleSelective(@Param("record") PrpmCaseInfo record, @Param("example") PrpmCaseInfoExample example);

    int updateByExample(@Param("record") PrpmCaseInfo record, @Param("example") PrpmCaseInfoExample example);

    List<PrpmCaseInfo> selectByCaseNo(List record);

    List<PrpmCaseInfo> selectByBean(PrpmCaseInfoDto prpmCaseInfoDto);

    PrpmCaseInfo selectCaseInfoByCaseNo(String caseNo);

    PrpmCaseInfo selectCaseInfoByRequest(LossItemRequest request);

    int updateByUuid(PrpmCaseInfo record);

    int selectByReUploadFlag(Integer reUploadFlag);

    PrpmCaseInfo selectByUuid(String uuid);

    List<PrpmCaseInfo> selectByUuidList(List record);

    List<PrpmCaseInfo> selectByUuidListCaseStatus(List record);

    int caseInfoCount(PrpmCaseInfoDto caseInfoDto);

    int deleteByCaseNo(String caseNo);

    List<PrpmCaseInfo> selectByUuidAndCaseStatusDown(List caseUuids);

    List<PrpmCaseInfo> selectByUuidAndCaseStatusUp(List caseUuids);

    List<PrpmEndCaseInfoDto> selectEndCaseByBean(PrpmEndCaseInfoDto endCase);

    List<PrpmRealCaseInfoDto> selectRealCaseInfoByBean(PrpmRealCaseInfoDto realCaseInfo);

    List<PrpmUserStatusDto> selectMobileUserStatus(List<String> uuidList);

    List<PrpmUserStatusDto> selectCheckUserStatus(List<String> uuidList);

    List<PrpmUserStatusDto> selectAllCompanyCaseStatus(List<String> uuidList);

    List<PrpmBoardCaseInfoDto> selectboardCaseInfo(PrpmCaseInfoDto caseInfoDto);

    List<PrpmHesunDetailDto> selectHesunUserDetail(PrpmHesunDetailDto hesunDetail);

    List<String> selectAllCaseUuid(List<String> uuidList);

    List<PrpmImgCheckDetailDto> selectImgCaseDetail(String imgCheck_caseUuid);

    PrpmCountReupload selectCountReupload(List<String> uuidList);

    List<PrpmCaseInfo> selectByUuidAndCaseStatus(List<String> uuids, int caseStatus);

    List<PrpmCaseInfo> getCaseInfoByUuidOrTime(Map<String, Object> params);

    PrpmCaseInfo selectCaseInfoByCaseNoAndUuid(@Param("caseNo") String caseNo, @Param("caseUuid") String caseUuid);

    List<PrpmCaseInfo> getCaseInfoByCaseNo(String caseNo);

    PrpmCaseInfo selectByCaseNo(String caseNo);
}